{{!
  Copyright (c) HashiCorp, Inc.
  SPDX-License-Identifier: BUSL-1.1
}}

<PkiPaginatedList @backend={{@backend}} @listRoute="issuers.index" @list={{@issuers}}>
  <:actions>
    <ToolbarLink @route="issuers.import" @model={{@backend}} data-test-generate-issuer="import">
      Import
    </ToolbarLink>
    <BasicDropdown
      @class="popup-menu"
      @horizontalPosition="auto-right"
      @verticalPosition="below"
      @renderInPlace={{true}}
      as |D|
    >
      <D.Trigger
        class={{concat "toolbar-link" (if D.isOpen " is-active")}}
        @htmlTag="button"
        data-test-issuer-generate-dropdown
      >
        Generate
        <Chevron @direction="down" @isButton={{true}} />
      </D.Trigger>
      <D.Content @defaultClass="popup-menu-content">
        <nav class="box menu" aria-label="generate options">
          <ul class="menu-list">
            <li>
              <LinkTo
                @route="issuers.generate-root"
                @model={{@backend}}
                {{on "click" (fn this.onLinkClick D)}}
                data-test-generate-issuer="root"
              >
                Root
              </LinkTo>
            </li>
            <li>
              <LinkTo
                @route="issuers.generate-intermediate"
                @model={{@backend}}
                {{on "click" (fn this.onLinkClick D)}}
                data-test-generate-issuer="intermediate"
              >
                Intermediate CSR
              </LinkTo>
            </li>
          </ul>
        </nav>
      </D.Content>
    </BasicDropdown>
  </:actions>
  <:list as |issuers|>
    {{#each issuers as |pkiIssuer idx|}}
      <LinkedBlock
        class="list-item-row"
        @params={{array "issuers.issuer.details" @backend pkiIssuer.id}}
        @linkPrefix={{@mountPoint}}
      >
        <div class="level is-mobile">
          <div class="level-left">
            <div data-test-issuer-list={{pkiIssuer.id}}>
              <Icon @name="certificate" class="has-text-grey-light" />
              <span class="has-text-weight-semibold is-underline">
                {{pkiIssuer.issuerRef}}
                {{#if pkiIssuer.issuerName}}
                  <Hds::Badge @text={{pkiIssuer.id}} />
                {{/if}}
              </span>
              <div class="is-flex-row has-left-margin-l has-top-margin-xs">
                {{#if pkiIssuer.isDefault}}
                  <Hds::Badge @text="default issuer" data-test-is-default={{idx}} class="has-right-margin-8" />
                {{/if}}
                {{#if (not-eq pkiIssuer.isRoot undefined)}}
                  <Hds::Badge
                    @text={{if pkiIssuer.isRoot "root" "intermediate"}}
                    data-test-is-root-tag={{idx}}
                    class="has-right-margin-8"
                  />
                {{/if}}
                {{#if pkiIssuer.serialNumber}}
                  <span class="is-flex-v-centered has-side-padding-8" data-test-serial-number={{idx}}>
                    <InfoTooltip>
                      Serial number
                    </InfoTooltip>
                    {{pkiIssuer.serialNumber}}
                  </span>
                {{/if}}
                {{#if pkiIssuer.parsedCertificate.common_name}}
                  <span class="is-flex-v-centered has-side-padding-8" data-test-common-name={{idx}}>
                    <InfoTooltip>
                      Common name
                    </InfoTooltip>
                    {{pkiIssuer.parsedCertificate.common_name}}
                  </span>
                {{/if}}
              </div>
            </div>
          </div>
          <div class="level-right is-flex is-paddingless is-marginless">
            <div class="level-item">
              <Hds::Dropdown @isInline={{true}} @listPosition="bottom-right" as |dd|>
                <dd.ToggleIcon
                  @icon="more-horizontal"
                  @text="Manage issuer"
                  @hasChevron={{false}}
                  data-test-popup-menu-trigger
                />
                <dd.Interactive
                  @route="issuers.issuer.details"
                  @models={{array @backend pkiIssuer.id}}
                  data-test-pki-issuer-details
                >Details</dd.Interactive>
                <dd.Interactive @route="issuers.issuer.edit" @models={{array @backend pkiIssuer.id}}>Edit</dd.Interactive>
              </Hds::Dropdown>
            </div>
          </div>
        </div>
      </LinkedBlock>
    {{/each}}
  </:list>
  <:empty>
    <EmptyState @title="PKI not configured" @message={{this.notConfiguredMessage}}>
      <Hds::Link::Standalone
        @icon="chevron-right"
        @iconPosition="trailing"
        @text="Configure PKI"
        @route="configuration.create"
        @model={{@backend}}
      />
    </EmptyState>
  </:empty>
</PkiPaginatedList>